#include <eigen3/Eigen/Dense>
#include <iostream>
int main(){
    Eigen::MatrixXd mat(3,3);
    mat << 1, 2, 3,
           4, 5, 6,
           7, 8, 9; 
    std::cout << "matrix mat:\n" << mat << std::endl;
    Eigen::MatrixXd matScaled = mat * 2;
    std::cout << "2 * mat:\n"<< matScaled << std::endl;
    Eigen::MatrixXd matTransposed = mat.transpose();
    std::cout << "Transpose of mat:\n"<< matTransposed << std::endl;
    Eigen::MatrixXd matInverse = mat.inverse();
    std::cout << "Inverse of mat:\n"<< matInverse << std::endl;
    Eigen::Vector3d a(1, 1, 1);
    Eigen::Vector3d b(3, 4, 5);
    double dotProduct = a.dot(b);
    std::cout << "The dot product of a and b:\n"<< dotProduct << std::endl;
    Eigen::Vector3d crossProduct = a.cross(b);
    std::cout << "The cross product of a and b:\n"<< crossProduct << std::endl;
    return 0;
}